As used herein, the term "communications channel" concerns a data bus providing shared communications among a plurality of stations. Typically, the stations comprise components of a data processing system, such as processors, device controllers, etc. Typically, the channel or bus is shared by a plurality of "active" stations, any of which can initiate communications; "passive" stations, namely those stations capable of responding when addressed but which cannot independently initiate an exchange of communications, may also be included.
Shared communications is ordinarily accomplished by either of two basic techniques (although, as will be understood, refinements of both are possible): time division (e.g. multiplexing) and contention.
In a pure contention channel, an active station transmits onto the channel whenever it has a message to send. One problem with such pure channels resides in the fact that if two or more stations are ready to transmit over the same time period, there will be a mutual garbling of messages as the messages overlap. While pure channels may be adequate for light traffic channels, the channels are not capable of being greatly expanded to serve more stations because the channels may not be capable of handling the increased traffic resulting from more stations. Further, the repeating of garbled messages tends to increase traffic on the channel, thereby increasing the likelihood of further garbling of messages.
To overcome some of the problems with pure contention channels it has been common to provide lock-out of all nontransmitting stations while the channel is active, such systems sometimes being called "carrier sense multiple access" systems. Thus, a "channel active" status is imposed on the channel by a transmitting station, and any station ready to transmit will have to wait until the channel becomes idle before a transmission can be initiated. Typically, the "channel active" status is merely the carrier signal of the message being transmitted by a using station. However, if two or more stations are awaiting a channel idle status, they may both seize the channel as soon as the channel becomes idle, thereby resulting in garbled messages and the necessity to repeat transmissions. To overcome this problem, it has been the practice to inhibit each station from seizing the channel for some unique predetermined period of time following channel idle status. This technique, sometimes called "priority ordering", provides a different time delay for each station, and the likelihood of conflict between two or more stations becomes quite remote. In effect, by allocating different time delays to the several stations, the stations have fixed orders of priorities with those stations having shorter time delays having greater priority over stations with longer time delays. While for many applications it is possible to allocate less important stations to the lower priorities to thereby adequately serve all stations, such an arrangement may not be satisfactory in environments where some stations cannot be appreciably subordinate to other stations. In this respect, certain system designs may require each station to have substantially equal priority to all other stations. Also, in extremely high traffic channels significant delays may occur before lower priority stations are able to seize the channel, as higher priority stations prevent such lower priority stations from being served.
Another technique, sometimes called "listen-while-talk", which is also an improvement of the carrier sense multiple access system, provides that each station "listen" to all transmissions, including its own, and if a garbling of messages occurs during a station's transmission (i.e., due to another station's transmission), the transmitting stations both abort transmission. Usually, the time that a station listens to the channel during its own transmissions is at least as long as the maximum propagation delay of the channel or bus, and usually a priority ordering as discussed above is accomplished to lessen the likelihood that the two stations will again conflict for use of the channel during retransmission.
Another technique, also an improvement of the pure contention channel discussed above, permits the garbling of messages to occur and provides a random access to the channel upon retransmissions.
Time division systems contemplate the assigning of specific time slots to each station or user during which it may transmit on the bus. Some systems require the station to complete use of the bus during the assigned time slot, while others merely require that a station initiate transmission during the time slot. A central station is provided in such systems to assign the time slots and control the transmissions and use of the channel. Time division techniques often employ time division multiplexing, or interrogation-responder techniques (e.g. polling and reservation systems).
For a further discussion of such contention and time division systems, reference may be had to "Time Division Digital Bus Techniques Implemented on Coaxial Cable" by N. B. Meisner et al in Proceedings of Computer Networking Symposium, Dec. 15, 1977, pp 112-117; "The Information Bus" by R. R. Everett in Signal, October, 1975, pp 12-14; "A Time Division Multiple Access System for Digital Communication" by D. G. Willard in Computer Design, June 1974; and "The Cable Bus in Data Communications" by V. A. DeMarines et al in Datamation, August 1976.
The present invention is concerned with certain improvements in time division systems, except that instead of employing a central station to assign fixed time slots, each station stores a representation (address) of the identity of the station having the opportunity to seize use of the channel and the representations are substantially simultaneously altered to permit other stations access to the channel or bus. Hence, the present invention offers the advantages of the contention systems (namely, absence of expensive central control equipment and the ability to use stations which themselves can initiate transmissions without direction of a central station) while at the same time employing fixed time slots for each station (thereby, avoiding any possibility of conflicts or contention for use of the channel).